
#####################################################################################################################################################
# Description: Makefile - To Compile the project programs development in C++
#       Autor: Yandi Naranjo Basalo (PhD. Research)
# Institution: Group RMN (Miquel Pons Laboratory) - IRB Barcelona
# Last Change: 12-11-2010
#     Project: Project with Prof. Robert Konrat (Meta-Structure a& LINGO in Complexes from the PDB), BioCenter Vienna.
#####################################################################################################################################################
#  Compiler
#####################################################################################################################################################
MPI          = mpic++
GCC          = g++
#####################################################################################################################################################
#  Get the list of PDB files of complexes
#####################################################################################################################################################

OBJECT       = Strings.o Node.o ListE.o ComplexesDB.o GetComplexesFromPDB.o

normal: $(OBJECT)
	$(GCC) $(OBJECT) -o GetComplexesFromPDB -lz

Strings.o: Strings.cpp
	$(GCC) -c Strings.cpp

Node.o: Node.cpp
	$(GCC) -c Node.cpp

ListE.o: ListE.cpp Node.o
	$(GCC) -c ListE.cpp

ComplexesDB.o: ComplexesDB.cpp ListE.o Strings.o
	$(GCC) -c ComplexesDB.cpp

GetComplexesFromPDB.o: GetComplexesFromPDB.cpp ListE.o Node.o Strings.o ComplexesDB.o libraries.h
	$(GCC) -c GetComplexesFromPDB.cpp

#####################################################################################################################################################
# Get the binding zone for PDB files of complexes take as input the list of files
#####################################################################################################################################################

OBJECT1      = Strings.o Node.o ListE.o BoxBindingZone.o ListResiduesNearLigand.o IdentifyBindingZoneInPDBFile.o

bindingSearch: $(OBJECT1)
	$(GCC) $(OBJECT1) -o IdentifyBindingZoneInPDBFile -lz

BoxBindingZone.o: BoxBindingZone.cpp ListE.o Strings.o
	$(GCC) -c BoxBindingZone.cpp

ListResiduesNearLigand.o: ListResiduesNearLigand.cpp BoxBindingZone.o ListE.o Strings.o
	$(GCC) -c ListResiduesNearLigand.cpp

IdentifyBindingZoneInPDBFile.o: IdentifyBindingZoneInPDBFile.cpp ListE.o Node.o Strings.o BoxBindingZone.o ListResiduesNearLigand.o libraries.h
	$(GCC) -c IdentifyBindingZoneInPDBFile.cpp

#####################################################################################################################################################
# Construct the FASTA FIlE with the sequences for all complexes (input to get the short path length for the metastructure)
#####################################################################################################################################################

OBJECT2      = Strings.o Node.o ListE.o PDBToFASTA.o GetFastaFileFromPDB.o

fastaPDB: $(OBJECT2)
	$(GCC) $(OBJECT2) -o GetFastaFileFromPDB -lz

PDBToFASTA.o: PDBToFASTA.cpp ListE.o Strings.o
	$(GCC) -c PDBToFASTA.cpp

GetFastaFileFromPDB.o: GetFastaFileFromPDB.cpp ListE.o Node.o Strings.o PDBToFASTA.o libraries.h
	$(GCC) -c GetFastaFileFromPDB.cpp

#####################################################################################################################################################
# Extract the PDB code for the protein in Reduced format (only alpha and beta carbon) and put then in separated files and also
# Extract the PDB code for the ligand in the complex. Consider only one Chain
#####################################################################################################################################################

OBJECT3      = Strings.o Node.o ListE.o ExtractComplexSeparated.o BoxBindingZone.o ExtractProteinLigandInComplexSeparatedFromPDB.o

extractComplexSeparatedPDB: $(OBJECT3)
	$(GCC) $(OBJECT3) -o ExtractProteinLigandInComplexSeparatedFromPDB -lz

ExtractComplexSeparated.o: ExtractComplexSeparated.cpp ListE.o Strings.o
	$(GCC) -c ExtractComplexSeparated.cpp

ExtractProteinLigandInComplexSeparatedFromPDB.o: ExtractProteinLigandInComplexSeparatedFromPDB.cpp ListE.o Node.o Strings.o ExtractComplexSeparated.o libraries.h
	$(GCC) -c ExtractProteinLigandInComplexSeparatedFromPDB.cpp

#####################################################################################################################################################
# Convert the format of Ligand from PDB into SMILES format, using the molconvert program (ChemAxon)
#####################################################################################################################################################

OBJECT4      = Strings.o Node.o ListE.o ConvertPDBToSmileJChem.o ConvertPDBToSmileForLigands.o

convertPDBLToSmiles: $(OBJECT4)
	$(GCC) $(OBJECT4) -o ConvertPDBToSmileForLigands -lz

ConvertPDBToSmileJChem.o: ConvertPDBToSmileJChem.cpp ListE.o Strings.o
	$(GCC) -c ConvertPDBToSmileJChem.cpp

ConvertPDBToSmileForLigands.o: ConvertPDBToSmileForLigands.cpp ListE.o Node.o Strings.o ConvertPDBToSmileJChem.o libraries.h
	$(GCC) -c ConvertPDBToSmileForLigands.cpp

#####################################################################################################################################################
# Compute the Frequency of LINGO for unidimensional sequences (SMILES or other)
#####################################################################################################################################################
#OBJECT5      = Strings.o Node.o ListE.o frequencyLingo.o

#parallel compilation
#frequencyLingo: $(OBJECT5)
#	$(MPI) $(OBJECT5) -o frequencyLingo -lz

#frequencyLingo.o: frequencyLingo.cpp ListE.o Node.o Strings.o libraries.h
#	$(MPI) -c frequencyLingo.cpp

#####################################################################################################################################################
# Convert the FASTA format File into SMI format file
#####################################################################################################################################################

OBJECT6      = Strings.o ConvertFASTAToSMI.o

ConvertFASTAToSMI: $(OBJECT6)
	$(GCC) $(OBJECT6) -o ConvertFASTAToSMI

ConvertFASTAToSMI.o: ConvertFASTAToSMI.cpp Strings.o
	$(GCC) -c ConvertFASTAToSMI.cpp

#####################################################################################################################################################
# Create the file with motif extended (to separate the record by pdbid even when exist duplicated sequences)
#####################################################################################################################################################

OBJECT7      = Strings.o Node.o ListE.o ExtendedFASTAFileMotif.o ExtendedFileMotif.o

extMotif: $(OBJECT7)
	$(GCC) $(OBJECT7) -o ExtendedFileMotif

ExtendedFASTAFileMotif.o: ExtendedFASTAFileMotif.cpp ListE.o Strings.o
	$(GCC) -c ExtendedFASTAFileMotif.cpp

ExtendedFileMotif.o: ExtendedFileMotif.cpp ListE.o Node.o Strings.o ExtendedFASTAFileMotif.o libraries.h
	$(GCC) -c ExtendedFileMotif.cpp

#####################################################################################################################################################
# Get the binding site for PDB files of complexes take as input the list of files
#####################################################################################################################################################

OBJECT8      = Strings.o Node.o ListE.o DistanceBindingSite.o ListResiduesDistanceLigand.o IdentifyBindingSiteInPDBFile.o

bindingSSearch: $(OBJECT8)
	$(GCC) $(OBJECT8) -o IdentifyBindingSiteInPDBFile -lz

DistanceBindingSite.o: DistanceBindingSite.cpp ListE.o Strings.o
	$(GCC) -c DistanceBindingSite.cpp

ListResiduesDistanceLigand.o: ListResiduesDistanceLigand.cpp DistanceBindingSite.o ListE.o Strings.o
	$(GCC) -c ListResiduesDistanceLigand.cpp

IdentifyBindingSiteInPDBFile.o: IdentifyBindingSiteInPDBFile.cpp ListE.o Node.o Strings.o DistanceBindingSite.o ListResiduesDistanceLigand.o libraries.h
	$(GCC) -c IdentifyBindingSiteInPDBFile.cpp

#####################################################################################################################################################
# Compact the Meta-Structure Motif in a small continuous Sequence
#####################################################################################################################################################

OBJECT9      = Strings.o Node.o ListE.o CompactMotifSequence.o GetCompactMotifSequence.o

compactMotif: $(OBJECT9)
	$(GCC) $(OBJECT9) -o GetCompactMotifSequence -lz

CompactMotifSequence.o: CompactMotifSequence.cpp ListE.o Strings.o
	$(GCC) -c CompactMotifSequence.cpp

GetCompactMotifSequence.o: GetCompactMotifSequence.cpp ListE.o Node.o Strings.o CompactMotifSequence.o libraries.h
	$(GCC) -c GetCompactMotifSequence.cpp

#####################################################################################################################################################
# Prepare the Ligand dataset to delete the small molecules in the smiles and to consider only one molecule
#####################################################################################################################################################

OBJECT10     = Strings.o Node.o ListE.o FilterProtonASmallLigandInSMI.o

filterSMI: $(OBJECT10)
	$(GCC) $(OBJECT10) -o FilterProtonASmallLigandInSMI

FilterProtonASmallLigandInSMI.o: FilterProtonASmallLigandInSMI.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c FilterProtonASmallLigandInSMI.cpp

#####################################################################################################################################################
# Prepare the smi file to put number in the iden
#####################################################################################################################################################

OBJECT11     = Strings.o Node.o ListE.o SMIChangeIDEToNumber.o

numberSMI: $(OBJECT11)
	$(GCC) $(OBJECT11) -o SMIChangeIDEToNumber

SMIChangeIDEToNumber.o: SMIChangeIDEToNumber.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c SMIChangeIDEToNumber.cpp

#####################################################################################################################################################
# Search files in the PDB using match String
#####################################################################################################################################################

OBJECT12     = Strings.o Node.o ListE.o SearchGroupFiles.o

SearchGroupFiles: $(OBJECT12)
	$(GCC) $(OBJECT12) -o SearchGroupFiles -lz

SearchGroupFiles.o: SearchGroupFiles.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c SearchGroupFiles.cpp

#####################################################################################################################################################
# Write new database files using the list
#####################################################################################################################################################

OBJECT13     = Strings.o Node.o ListE.o WriteDBFromListALocation.o

DBList: $(OBJECT13)
	$(GCC) $(OBJECT13) -o WriteDBFromListALocation

WriteDBFromListALocation.o: WriteDBFromListALocation.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c WriteDBFromListALocation.cpp

#####################################################################################################################################################
# Change the number in the cluster file to put again the original ident
#####################################################################################################################################################

OBJECT14     = Strings.o Node.o ListE.o ClusterChangeNumberToIDE.o

ClusterToIDE: $(OBJECT14)
	$(GCC) $(OBJECT14) -o ClusterChangeNumberToIDE

ClusterChangeNumberToIDE.o: ClusterChangeNumberToIDE.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c ClusterChangeNumberToIDE.cpp

#####################################################################################################################################################
# Convert the format of Meta-Structure from Mol2 into SMILES format, using the molconvert program (ChemAxon)
#####################################################################################################################################################

OBJECT15      = Strings.o Node.o ListE.o ConvertMol2ToSmileJChem.o ConvertMol2ToSmileForLigands.o

convertMol2ToSmiles: $(OBJECT15)
	$(GCC) $(OBJECT15) -o ConvertMol2ToSmileForLigands -lz

ConvertMol2ToSmileJChem.o: ConvertMol2ToSmileJChem.cpp ListE.o Strings.o
	$(GCC) -c ConvertMol2ToSmileJChem.cpp

ConvertMol2ToSmileForLigands.o: ConvertMol2ToSmileForLigands.cpp ListE.o Node.o Strings.o ConvertMol2ToSmileJChem.o libraries.h
	$(GCC) -c ConvertMol2ToSmileForLigands.cpp

#####################################################################################################################################################
# Create from the cluster file and smiles files the ordered smiles files
#####################################################################################################################################################

OBJECT16      = Strings.o Node.o ListE.o ExtractDBClustered.o

extractDBCLU: $(OBJECT16)
	$(GCC) $(OBJECT16) -o ExtractDBClustered -lz

ExtractDBClustered.o: ExtractDBClustered.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c ExtractDBClustered.cpp

#####################################################################################################################################################
# Compute the LingoSim Average in the neighborhood of each sequences in one database
#####################################################################################################################################################

OBJECT17      = Strings.o Node.o ListE.o ComputeAverageNeighborSequences.o

averageNeighborhoodLingoSim: $(OBJECT17)
	$(GCC) $(OBJECT17) -o ComputeAverageNeighborSequences -lz

ComputeAverageNeighborSequences.o: ComputeAverageNeighborSequences.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c ComputeAverageNeighborSequences.cpp

#####################################################################################################################################################
# Create the file with fasta extended (to separate the record by pdbid even when exist duplicated sequences)
#####################################################################################################################################################

OBJECT18     = Strings.o Node.o ListE.o ExtendedFASTAFileMotif.o ExtendedFileFASTA.o

extFASTA: $(OBJECT18)
	$(GCC) $(OBJECT18) -o ExtendedFileFASTA

ExtendedFileFASTA.o: ExtendedFileFASTA.cpp ListE.o Node.o Strings.o ExtendedFASTAFileMotif.o libraries.h
	$(GCC) -c ExtendedFileFASTA.cpp

#####################################################################################################################################################
# Compute the average with the alignment similarity
#####################################################################################################################################################

OBJECT19     = Strings.o Node.o ListE.o ComputeAverageNeighborSequencesAlignment.o

averageAlignment: $(OBJECT19)
	$(GCC) $(OBJECT19) -o ComputeAverageNeighborSequencesAlignment -lz

ComputeAverageNeighborSequencesAlignment.o: ComputeAverageNeighborSequencesAlignment.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c ComputeAverageNeighborSequencesAlignment.cpp

#####################################################################################################################################################
# Compute the correlation between cluster files with the same items
#####################################################################################################################################################

OBJECT20     = Strings.o Node.o ListE.o SmileStruct.o AncestorMol.o ListAncestorMol.o ListSmile.o CorrelationClusters.o

correlationClusters: $(OBJECT20)
	$(GCC) $(OBJECT20) -o CorrelationClusters -lz

SmileStruct.o: SmileStruct.cpp Strings.o ListE.o
	$(GCC) -c SmileStruct.cpp

AncestorMol.o: AncestorMol.cpp SmileStruct.o
	$(GCC) -c AncestorMol.cpp

ListAncestorMol.o: ListAncestorMol.cpp AncestorMol.o
	$(GCC) -c ListAncestorMol.cpp

ListSmile.o: ListSmile.cpp ListAncestorMol.o
	$(GCC) -c ListSmile.cpp

CorrelationClusters.o: CorrelationClusters.cpp ListE.o Node.o Strings.o libraries.h  SmileStruct.o AncestorMol.o ListAncestorMol.o ListSmile.o
	$(GCC) -c CorrelationClusters.cpp

#####################################################################################################################################################
# Compute the correlation betwee cluster files (Plot complete)
#####################################################################################################################################################

OBJECT21     = Strings.o Node.o ListE.o SmileStruct.o AncestorMol.o ListAncestorMol.o ListSmile.o CorrelationClustersPlot.o

correlationClustersPlot: $(OBJECT21)
	$(GCC) $(OBJECT21) -o CorrelationClustersPlot -lz

CorrelationClustersPlot.o: CorrelationClustersPlot.cpp ListE.o Node.o Strings.o libraries.h  SmileStruct.o AncestorMol.o ListAncestorMol.o ListSmile.o
	$(GCC) -c CorrelationClustersPlot.cpp

#####################################################################################################################################################
# Order cluster file using LingoSim in center way (Iterative)
#####################################################################################################################################################

OBJECT22     = Strings.o Node.o ListE.o SmileStruct.o AncestorMol.o ListAncestorMol.o ListSmile.o OrderAncestorFile.o

orderAncestor: $(OBJECT22)
	$(GCC) $(OBJECT22) -o OrderAncestorFile -lz

OrderAncestorFile.o: OrderAncestorFile.cpp ListE.o Node.o Strings.o libraries.h  SmileStruct.o AncestorMol.o ListAncestorMol.o ListSmile.o
	$(GCC) -c OrderAncestorFile.cpp

#####################################################################################################################################################
# Get Name of Ligand from PDB data files
#####################################################################################################################################################

OBJECT23      = Strings.o Node.o ListE.o PDBToFASTA.o GetNameLigandFromPDBFile.o

ligandNameFromPDB: $(OBJECT23)
	$(GCC) $(OBJECT23) -o GetNameLigandFromPDBFile -lz

GetNameLigandFromPDBFile.o: GetNameLigandFromPDBFile.cpp ListE.o Node.o Strings.o PDBToFASTA.o libraries.h
	$(GCC) -c GetNameLigandFromPDBFile.cpp

#####################################################################################################################################################
# Console connection with TopMatch Web Page
#####################################################################################################################################################

OBJECT24      = TopMatchCompute.o

TopMatch: $(OBJECT24)
	$(GCC) $(OBJECT24) -o TopMatchCompute -lz -lcurl

TopMatchCompute.o: TopMatchCompute.cpp
	$(GCC) -c TopMatchCompute.cpp

#####################################################################################################################################################
# Reduce Smile File by list
#####################################################################################################################################################

OBJECT25      = Strings.o Node.o ListE.o ReduceSmileFileByList.o

reduceSmileFileByList: $(OBJECT25)
	$(GCC) $(OBJECT25) -o ReduceSmileFileByList -lz

ReduceSmileFileByList.o: ReduceSmileFileByList.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c ReduceSmileFileByList.cpp

#####################################################################################################################################################
# Create Cluster Groups
#####################################################################################################################################################

OBJECT26      = Strings.o Node.o ListE.o SmileStruct.o AncestorMol.o ListAncestorMol.o ListSmile.o CreateClusterGroups.o

createClusterGroups: $(OBJECT26)
	$(GCC) $(OBJECT26) -o CreateClusterGroups -lz

CreateClusterGroups.o: CreateClusterGroups.cpp ListE.o Node.o Strings.o SmileStruct.o AncestorMol.o ListAncestorMol.o ListSmile.o libraries.h
	$(GCC) -c CreateClusterGroups.cpp

#####################################################################################################################################################
# Compute the correlation between cluster files with the same items for any cluster level
#####################################################################################################################################################

OBJECT27     = Strings.o Node.o ListE.o SmileStruct.o AncestorMol.o ListAncestorMol.o ListSmile.o CorrelationClustersComplete.o

correlationClustersComplete: $(OBJECT27)
	$(GCC) $(OBJECT27) -o CorrelationClustersComplete -lz

CorrelationClustersComplete.o: CorrelationClustersComplete.cpp ListE.o Node.o Strings.o libraries.h  SmileStruct.o AncestorMol.o ListAncestorMol.o ListSmile.o
	$(GCC) -c CorrelationClustersComplete.cpp

#####################################################################################################################################################
# Compute the correlation between cluster files (Plot complete) for any cluster level
#####################################################################################################################################################

OBJECT28     = Strings.o Node.o ListE.o SmileStruct.o AncestorMol.o ListAncestorMol.o ListSmile.o CorrelationClustersPlotComplete.o

correlationClustersPlotComplete: $(OBJECT28)
	$(GCC) $(OBJECT28) -o CorrelationClustersPlotComplete -lz

CorrelationClustersPlotComplete.o: CorrelationClustersPlotComplete.cpp ListE.o Node.o Strings.o libraries.h  SmileStruct.o AncestorMol.o ListAncestorMol.o ListSmile.o
	$(GCC) -c CorrelationClustersPlotComplete.cpp

#####################################################################################################################################################
# Compute cluster similarity between correlated clusters
#####################################################################################################################################################

OBJECT29     = Strings.o Node.o ListE.o SmileStruct.o AncestorMol.o ListAncestorMol.o ListSmile.o ClusterSimilarity.o

clusterSimilarity: $(OBJECT29)
	$(GCC) $(OBJECT29) -o ClusterSimilarity -lz

ClusterSimilarity.o: ClusterSimilarity.cpp ListE.o Node.o Strings.o libraries.h  SmileStruct.o AncestorMol.o ListAncestorMol.o ListSmile.o
	$(GCC) -c ClusterSimilarity.cpp

#####################################################################################################################################################
# Console connection with TopMatch Web Page uploading the files
#####################################################################################################################################################
#
#OBJECT30      = TopMatchComputeFile.o
#
#TopMatchFile: $(OBJECT30)
#	$(GCC) $(OBJECT30) -o TopMatchComputeFile -lz -lcurl
#
#TopMatchComputeFile.o: TopMatchComputeFile.cpp
#	$(GCC) -c TopMatchComputeFile.cpp
#
#####################################################################################################################################################
# Extract the PDB coordinates for the chain in the complex that correspond to the highest ligand
#####################################################################################################################################################

OBJECT31    = Strings.o Node.o ListE.o ExtractComplexSeparated.o BoxBindingZone.o ExtractCoordProtein.o

extractCoordProtein: $(OBJECT31)
	$(GCC) $(OBJECT31) -o ExtractCoordProtein -lz

ExtractCoordProtein.o: ExtractCoordProtein.cpp ListE.o Node.o Strings.o ExtractComplexSeparated.o libraries.h
	$(GCC) -c ExtractCoordProtein.cpp

#####################################################################################################################################################
# Console connection with TopMatch Web Page to compute the similarity matrix for the list of PDB files
#####################################################################################################################################################

OBJECT32      =  ListE.o Node.o Strings.o TopMatchComputeMatrix.o

topMatchMatrix: $(OBJECT32)
	$(GCC) $(OBJECT32) -o TopMatchComputeMatrix -lz -lcurl

TopMatchComputeMatrix.o: TopMatchComputeMatrix.cpp  ListE.o Node.o Strings.o libraries.h
	$(GCC) -c TopMatchComputeMatrix.cpp

#####################################################################################################################################################
# Console connection with TopMatch Web Page to compute the similarity matrix for the list of PDB files (Construction of Matrix onfly)
#####################################################################################################################################################

#OBJECT33      =  ListE.o Node.o Strings.o TopMatchComputeMatrixSplit.o

topMatchMatrixSplit: $(OBJECT33)
	$(GCC) $(OBJECT33) -o TopMatchComputeMatrixSplit -lz -lcurl -lming

TopMatchComputeMatrixSplit.o: TopMatchComputeMatrixSplit.cpp  ListE.o Node.o Strings.o libraries.h
	$(GCC) -c TopMatchComputeMatrixSplit.cpp

#####################################################################################################################################################
# Console connection with SuperPose Web Page to compute the similarity matrix for the list of PDB files (Construction of Matrix onfly)
#####################################################################################################################################################

OBJECT34      =  ListE.o Node.o Strings.o SuperPoseComputeMatrixSplit.o

superPoseMatrixSplit: $(OBJECT34)
	$(GCC) $(OBJECT34) -o SuperPoseComputeMatrixSplit -lz -lcurl

SuperPoseComputeMatrixSplit.o: SuperPoseComputeMatrixSplit.cpp  ListE.o Node.o Strings.o libraries.h
	$(GCC) -c SuperPoseComputeMatrixSplit.cpp

#####################################################################################################################################################
# Console connection with PDB (JFATCAT Rigid) Web Page to compute the similarity matrix for the list of PDB files (Construction of Matrix onfly)
#####################################################################################################################################################

OBJECT35      =  ListE.o Node.o Strings.o PDBjFATCATRigidComputeMatrixSplit.o

PDBjFATCATRigidMatrixSplit: $(OBJECT35)
	$(GCC) $(OBJECT35) -o PDBjFATCATRigidComputeMatrixSplit -lz -lcurl -lming

PDBjFATCATRigidComputeMatrixSplit.o: PDBjFATCATRigidComputeMatrixSplit.cpp  ListE.o Node.o Strings.o libraries.h
	$(GCC) -c PDBjFATCATRigidComputeMatrixSplit.cpp

#####################################################################################################################################################
# Compute LINGOSIm Matrix
#####################################################################################################################################################

OBJECT36      =  ListE.o Node.o Strings.o ComputeLingoSimMatrix.o

computeLingoSimMatrix: $(OBJECT36)
	$(GCC) $(OBJECT36) -o ComputeLingoSimMatrix -lz -lm

ComputeLingoSimMatrix.o: ComputeLingoSimMatrix.cpp  ListE.o Node.o Strings.o libraries.h
	$(GCC) -c ComputeLingoSimMatrix.cpp

#####################################################################################################################################################
# Extract the coordinates form the PDB file using the information of pseudo-MOL2 file (normal Alpha Carbon and All Atoms - Default)
#####################################################################################################################################################

OBJECT37      =  ListE.o Node.o Strings.o ManipulateMol2File.o ConvertMOL2ToPDBMetaStructure.o

convertMOL2ToPDBMetaStructure: $(OBJECT37)
	$(GCC) $(OBJECT37) -o ConvertMOL2ToPDBMetaStructure -lz

ManipulateMol2File.o: ManipulateMol2File.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c ManipulateMol2File.cpp

ConvertMOL2ToPDBMetaStructure.o: ConvertMOL2ToPDBMetaStructure.cpp ManipulateMol2File.o
	$(GCC) -c ConvertMOL2ToPDBMetaStructure.cpp

#####################################################################################################################################################
# Create Random Clusters using as input the list of elements and the cluster size
#####################################################################################################################################################

OBJECT38      =  ListE.o Node.o Strings.o CreateRandomClusters.o RandomClusters.o

randomClusters: $(OBJECT38)
	$(GCC) $(OBJECT38) -o RandomClusters

CreateRandomClusters.o: CreateRandomClusters.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c CreateRandomClusters.cpp

RandomClusters.o: RandomClusters.cpp CreateRandomClusters.o
	$(GCC) -c RandomClusters.cpp

#####################################################################################################################################################
# Compute Similarity using the TM-Align - Store the result in Matrix way
#####################################################################################################################################################

OBJECT39      =  ListE.o Node.o Strings.o SimilarityTMAlign.o ComputeMatrixTMAlign.o

computeMatrixTMAlign: $(OBJECT39)
	$(GCC) $(OBJECT39) -o ComputeMatrixTMAlign

SimilarityTMAlign.o: SimilarityTMAlign.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c SimilarityTMAlign.cpp

ComputeMatrixTMAlign.o: ComputeMatrixTMAlign.cpp SimilarityTMAlign.o
	$(GCC) -c ComputeMatrixTMAlign.cpp

#####################################################################################################################################################
# Order Matrix of Value with labels, by other list of ordered labels
#####################################################################################################################################################

OBJECT40      =  ListE.o Node.o Strings.o ManipulateMatrix.o OrderMatrixValue.o

orderMatrixValue: $(OBJECT40)
	$(GCC) $(OBJECT40) -o OrderMatrixValue -lz

ManipulateMatrix.o: ManipulateMatrix.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c ManipulateMatrix.cpp

OrderMatrixValue.o: OrderMatrixValue.cpp ManipulateMatrix.o
	$(GCC) -c OrderMatrixValue.cpp

#####################################################################################################################################################
# Add Header list in the first line of Matrix value
#####################################################################################################################################################

OBJECT41      =  ListE.o Node.o Strings.o AddHeaderToMatrixFromList.o

addHeaderToMatrixFromList: $(OBJECT41)
	$(GCC) $(OBJECT41) -o AddHeaderToMatrixFromList -lz

AddHeaderToMatrixFromList.o: AddHeaderToMatrixFromList.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c AddHeaderToMatrixFromList.cpp

#####################################################################################################################################################
# Measure of activity distance between kinases inhibitors readed from the matrix (Ligand VS Proteins Kd)
#####################################################################################################################################################

OBJECT42      =  ListE.o Node.o Strings.o InhibitorKdDistance.o InhibitorsBioAssayKd.o

inhibitorKdDistance: $(OBJECT42)
	$(GCC) $(OBJECT42) -o InhibitorKdDistance -lz

InhibitorsBioAssayKd.o: InhibitorsBioAssayKd.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c InhibitorsBioAssayKd.cpp

InhibitorKdDistance.o: InhibitorKdDistance.cpp InhibitorsBioAssayKd.o
	$(GCC) -c InhibitorKdDistance.cpp

#####################################################################################################################################################
# Get the correspondence value in two matrix for the same laberls and put then as two column to ploting
#####################################################################################################################################################

OBJECT43      =  ListE.o Node.o Strings.o CorrespondencePointInToMatrix.o

correspondencePointInToMatrix: $(OBJECT43)
	$(GCC) $(OBJECT43) -o CorrespondencePointInToMatrix -lz

CorrespondencePointInToMatrix.o: CorrespondencePointInToMatrix.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c CorrespondencePointInToMatrix.cpp

#####################################################################################################################################################
# Compute the Euclidian Distance between two molecules using as input the file with smiles codeid and property value (Output -> matrix of distance)
#####################################################################################################################################################

OBJECT44      =  ListE.o Node.o Strings.o InhibitorPropertiesDistance.o InhibitorsProperty.o

inhibitorPropertiesDistance: $(OBJECT44)
	$(GCC) $(OBJECT44) -o InhibitorPropertiesDistance -lz

InhibitorsProperty.o: InhibitorsProperty.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c InhibitorsProperty.cpp

InhibitorPropertiesDistance.o: InhibitorPropertiesDistance.cpp InhibitorsProperty.o
	$(GCC) -c InhibitorPropertiesDistance.cpp

#####################################################################################################################################################
# Console connection with TopMatch Web Page
#####################################################################################################################################################

OBJECT45      = ListE.o Node.o Strings.o WaltzCompute.o

waltzCompute: $(OBJECT45)
	$(GCC) $(OBJECT45) -o WaltzCompute -lz -lcurl

WaltzCompute.o: WaltzCompute.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c WaltzCompute.cpp

#####################################################################################################################################################
# Compute some statistic value from files of Amylogenic results
#####################################################################################################################################################

OBJECT46      =  ListE.o Node.o Strings.o AmylogenicAnalysis.o AmylogenicData.o ListAmylogenic.o 

AmylogenicAnalysis: $(OBJECT46)
	$(GCC) $(OBJECT46) -o AmylogenicAnalysis

AmylogenicData.o: AmylogenicData.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c AmylogenicData.cpp

ListAmylogenic.o: ListAmylogenic.cpp AmylogenicData.o ListE.o Node.o Strings.o libraries.h
	$(GCC) -c ListAmylogenic.cpp

AmylogenicAnalysis.o: AmylogenicAnalysis.cpp ListAmylogenic.o AmylogenicData.o ListE.o Node.o Strings.o libraries.h
	$(GCC) -c AmylogenicAnalysis.cpp

#####################################################################################################################################################
# Console connection with DisEMBL Web Page
#####################################################################################################################################################

OBJECT47      = ListE.o Node.o Strings.o DisEMBLCompute.o

disEMBL: $(OBJECT47)
	$(GCC) $(OBJECT47) -o DisEMBL -lz -lcurl

DisEMBLCompute.o: DisEMBLCompute.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c DisEMBLCompute.cpp

#####################################################################################################################################################
# Compute some statistic value from files of IDPs results
#####################################################################################################################################################

OBJECT48      =  ListE.o Node.o Strings.o IDPsAnalysis.o DisEMBLProcessResult.o DisEMBLAnalysis.o 

IDPsAnalysis: $(OBJECT48)
	$(GCC) $(OBJECT48) -o IDPsAnalysis

DisEMBLProcessResult.o: DisEMBLProcessResult.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c DisEMBLProcessResult.cpp

DisEMBLAnalysis.o: DisEMBLAnalysis.cpp DisEMBLProcessResult.o ListE.o Node.o Strings.o libraries.h
	$(GCC) -c DisEMBLAnalysis.cpp

IDPsAnalysis.o: IDPsAnalysis.cpp DisEMBLAnalysis.o DisEMBLProcessResult.o ListE.o Node.o Strings.o libraries.h
	$(GCC) -c IDPsAnalysis.cpp

#####################################################################################################################################################
# Console multiple execution DisProt (VSL2)
#####################################################################################################################################################

OBJECT49      = ListE.o Node.o Strings.o DisProtCompute.o DisProtProcessResult.o

disProt: $(OBJECT49)
	$(GCC) $(OBJECT49) -o DisProt -lz

DisProtProcessResult.o: DisProtProcessResult.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c DisProtProcessResult.cpp

DisProtCompute.o: DisProtCompute.cpp DisProtProcessResult.o ListE.o Node.o Strings.o libraries.h
	$(GCC) -c DisProtCompute.cpp

#####################################################################################################################################################
# Compute some statistic value from files of IDPs results
#####################################################################################################################################################

OBJECT50      =  ListE.o Node.o Strings.o IDPsDisProtAnalysis.o DisProtProcessResult.o DisProtAnalysis.o 

disProtAnalysis: $(OBJECT50)
	$(GCC) $(OBJECT50) -o DisProtAnalysis

DisProtAnalysis.o: DisProtAnalysis.cpp DisProtProcessResult.o ListE.o Node.o Strings.o libraries.h
	$(GCC) -c DisProtAnalysis.cpp

IDPsDisProtAnalysis.o: IDPsDisProtAnalysis.cpp DisProtAnalysis.o DisProtProcessResult.o ListE.o Node.o Strings.o libraries.h
	$(GCC) -c IDPsDisProtAnalysis.cpp

#####################################################################################################################################################
# Get the Two Pearson Correlation in Bi-dimensional
#####################################################################################################################################################

OBJECT51      = ListE.o Node.o Strings.o PearsonCorrelationCoefficiente.o PearsonCorrelation.o

pearson2D: $(OBJECT51)
	$(GCC) $(OBJECT51) -o PearsonCoeff

PearsonCorrelation.o: PearsonCorrelation.cpp ListE.o Node.o Strings.o libraries.h
	$(GCC) -c PearsonCorrelation.cpp

PearsonCorrelationCoefficiente.o: PearsonCorrelationCoefficiente.cpp PearsonCorrelation.o ListE.o Node.o Strings.o libraries.h
	$(GCC) -c PearsonCorrelationCoefficiente.cpp

#####################################################################################################################################################
# Compute LINGOSim Pair
#####################################################################################################################################################

OBJECT52      =  ListE.o Node.o Strings.o ComputeLingoSimPair.o

computeLingoSimPair: $(OBJECT52)
	$(GCC) $(OBJECT52) -o ComputeLingoSimPair -lz -lm

ComputeLingoSimPair.o: ComputeLingoSimPair.cpp  ListE.o Node.o Strings.o libraries.h
	$(GCC) -c ComputeLingoSimPair.cpp

#####################################################################################################################################################
# All
#####################################################################################################################################################

all: $(OBJECT)   $(OBJECT1)  $(OBJECT2)  $(OBJECT3)  $(OBJECT4)  $(OBJECT5)  $(OBJECT6)  \
     $(OBJECT7)  $(OBJECT8)  $(OBJECT9)  $(OBJECT10) $(OBJECT11) $(OBJECT12) $(OBJECT13) \
     $(OBJECT14) $(OBJECT15) $(OBJECT16) $(OBJECT17) $(OBJECT18) $(OBJECT19) $(OBJECT20) \
     $(OBJECT21) $(OBJECT22) $(OBJECT23) $(OBJECT24) $(OBJECT25) $(OBJECT26) $(OBJECT27) \
     $(OBJECT28) $(OBJECT29) $(OBJECT31) $(OBJECT32) $(OBJECT33) $(OBJECT34) $(OBJECT35) \
     $(OBJECT36) $(OBJECT37) $(OBJECT38) $(OBJECT39) $(OBJECT40) $(OBJECT41) $(OBJECT42) \
     $(OBJECT43) $(OBJECT44) $(OBJECT45) $(OBJECT46) $(OBJECT47) $(OBJECT48) $(OBJECT49) \
     $(OBJECT50) $(OBJECT51) $(OBJECT52)
 
	$(GCC) $(OBJECT)   -o GetComplexesFromPDB -lz
	$(GCC) $(OBJECT1)  -o IdentifyBindingZoneInPDBFile -lz
	$(GCC) $(OBJECT2)  -o GetFastaFileFromPDB -lz
	$(GCC) $(OBJECT3)  -o ExtractProteinLigandInComplexSeparatedFromPDB -lz
	$(GCC) $(OBJECT4)  -o ConvertPDBToSmileForLigands -lz
#	$(MPI) $(OBJECT5)  -o frequencyLingo -lz
	$(GCC) $(OBJECT6)  -o ConvertFASTAToSMI
	$(GCC) $(OBJECT7)  -o ExtendedFileMotif
	$(GCC) $(OBJECT8)  -o IdentifyBindingSiteInPDBFile -lz
	$(GCC) $(OBJECT9)  -o GetCompactMotifSequence -lz
	$(GCC) $(OBJECT10) -o FilterProtonASmallLigandInSMI
	$(GCC) $(OBJECT11) -o SMIChangeIDEToNumber
	$(GCC) $(OBJECT12) -o SearchGroupFiles -lz
	$(GCC) $(OBJECT13) -o WriteDBFromListALocation
	$(GCC) $(OBJECT14) -o ClusterChangeNumberToIDE
	$(GCC) $(OBJECT15) -o ConvertMol2ToSmileForLigands -lz
	$(GCC) $(OBJECT16) -o ExtractDBClustered -lz
	$(GCC) $(OBJECT17) -o ComputeAverageNeighborSequences -lz
	$(GCC) $(OBJECT18) -o ExtendedFileFASTA
	$(GCC) $(OBJECT19) -o ComputeAverageNeighborSequencesAlignment -lz
	$(GCC) $(OBJECT20) -o CorrelationClusters -lz
	$(GCC) $(OBJECT21) -o CorrelationClustersPlot -lz
	$(GCC) $(OBJECT22) -o OrderAncestorFile -lz
	$(GCC) $(OBJECT23) -o GetNameLigandFromPDBFile -lz
	$(GCC) $(OBJECT24) -o TopMatchCompute -lz -lcurl
	$(GCC) $(OBJECT25) -o ReduceSmileFileByList -lz
	$(GCC) $(OBJECT26) -o CreateClusterGroups -lz
	$(GCC) $(OBJECT27) -o CorrelationClustersComplete -lz
	$(GCC) $(OBJECT28) -o CorrelationClustersPlotComplete -lz
	$(GCC) $(OBJECT29) -o ClusterSimilarity -lz
#	$(GCC) $(OBJECT30) -o TopMatchComputeFile -lz -lcurl
	$(GCC) $(OBJECT31) -o ExtractCoordProtein -lz
#	$(GCC) $(OBJECT32) -o TopMatchComputeMatrix -lz -lcurl
#	$(GCC) $(OBJECT33) -o TopMatchComputeMatrixSplit -lz -lcurl -lming
	$(GCC) $(OBJECT34) -o SuperPoseComputeMatrixSplit -lz -lcurl
	$(GCC) $(OBJECT35) -o PDBjFATCATRigidComputeMatrixSplit -lz -lcurl
	$(GCC) $(OBJECT36) -o ComputeLingoSimMatrix -lz -lm
	$(GCC) $(OBJECT37) -o ConvertMOL2ToPDBMetaStructure -lz
	$(GCC) $(OBJECT38) -o RandomClusters
	$(GCC) $(OBJECT39) -o ComputeMatrixTMAlign
	$(GCC) $(OBJECT40) -o OrderMatrixValue -lz
	$(GCC) $(OBJECT41) -o AddHeaderToMatrixFromList -lz
	$(GCC) $(OBJECT42) -o InhibitorKdDistance -lz
	$(GCC) $(OBJECT43) -o CorrespondencePointInToMatrix -lz
	$(GCC) $(OBJECT44) -o InhibitorPropertiesDistance -lz
	$(GCC) $(OBJECT45) -o WaltzCompute -lz -lcurl
	$(GCC) $(OBJECT46) -o AmylogenicAnalysis
	$(GCC) $(OBJECT47) -o DisEMBL -lz -lcurl
	$(GCC) $(OBJECT48) -o IDPsAnalysis
	$(GCC) $(OBJECT49) -o DisProt -lz
	$(GCC) $(OBJECT50) -o DisProtAnalysis
	$(GCC) $(OBJECT51) -o PearsonCoeff
	$(GCC) $(OBJECT52) -o ComputeLingoSimPair -lz -lm

#####################################################################################################################################################

cleanObj:
	rm *.o

#####################################################################################################################################################

clean:
	rm *.o
	rm IdentifyBindingZoneInPDBFile GetFastaFileFromPDB ExtractProteinLigandInComplexSeparatedFromPDB
	rm GetComplexesFromPDB ConvertFASTAToSMI ExtendedFileMotif ConvertPDBToSmileForLigands
	rm IdentifyBindingSiteInPDBFile GetCompactMotifSequence FilterProtonASmallLigandInSMI
	rm SMIChangeIDEToNumber SearchGroupFiles WriteDBFromListALocation ClusterChangeNumberToIDE
	rm ConvertMol2ToSmileForLigands ExtractDBClustered ComputeAverageNeighborSequences
	rm ExtendedFileFASTA ComputeAverageNeighborSequencesAlignment CorrelationClusters
	rm CorrelationClustersPlot OrderAncestorFile GetNameLigandFromPDBFile
	rm ReduceSmileFileByList CreateClusterGroups CorrelationClustersComplete
	rm CorrelationClustersPlotComplete ClusterSimilarity TopMatchCompute ExtractCoordProtein
	rm SuperPoseComputeMatrixSplit PDBjFATCATRigidComputeMatrixSplit
	rm ComputeLingoSimMatrix ConvertMOL2ToPDBMetaStructure RandomClusters
	rm ComputeMatrixTMAlign OrderMatrixValue AddHeaderToMatrixFromList InhibitorKdDistance
	rm CorrespondencePointInToMatrix InhibitorPropertiesDistance WaltzCompute AmylogenicAnalysis DisEMBL
	rm IDPsAnalysis DisProt DisProtAnalysis PearsonCoeff ComputeLingoSimPair

#####################################################################################################################################################
# End
#####################################################################################################################################################
